package edu.gdkm.demo3;
//求 n!
//循环可以实现  1*2*3.。。*n
//递归：
//假设我有个方法fact(k) ,这个方法可以算出k!,
//fact(n) => 1、实现降维  n => n-1、n-2..
//           2、获得边界值  n等于某个具体值的时候，能获得fact(n)的值
//fact(n) = fact(n-1) * n
//fact(1) = 1
public class Exampl11 {
    public static long fact(int k){
        if(k==1){
            return 1;
        }else{
            return fact(k-1)*k;
        }
    }
    public static long fact_loop(int k){
        long result=1;
        for(int i=1;i<=k;i++){
            result *= i;
        }
        return result;
    }
    public static void main(String[] args) {
        int n=55;
        System.out.println(fact(n));
        System.out.println(fact_loop(n));
    }
}
